<script>
	export default {
		// 设置全局数据
		globalData: {
			userInfo: {
				avatarUrl: 'cloud://klausjins-0go3socwd767ad11.6b6c-klausjins-0go3socwd767ad11-1310485191/shaoPAI users/defaultAvatar.png',
				nickName: '用户昵称'
			}
		},
		onLaunch: function() {
			// console.log('App Launch')
			wx.cloud.init({
				env: 'klausjins-0go3socwd767ad11',
				traceUser: true
			})
		},
		methods: {
			// 用户登录函数
			login() {
				uni.showModal({
					title: '提示',
					content: '是否确定登录'
				}).then(res => {
					const result = res[1]
					// 如果用户点击确定
					if (result.confirm) {
						this.getUserInfo()
					} else if (result.cancel) {
						uni.showToast({
							title: '您取消了登录',
							icon: "none"
						})
					}
				})
			},
			// 获取用户的openId
			getOpenId() {
				wx.cloud.callFunction({
					name: 'get_openId_login'
				}).then(res => {
					console.log(res);
					// 将用户信息储存到缓存里面
					this.globalData.userInfo.openId = res.result
					uni.setStorageSync('userInfo', this.globalData.userInfo)
					uni.hideLoading()
					// 登录后跳转到个人页面
					uni.switchTab({
						url: '/pages/profile/profile'
					})
				})
			},
			// 获取用户信息
			getUsersDetailInfo() {
				wx.cloud.callFunction({
					name: 'get_users_info'
				}).then(res => {
					console.log(res);
					this.globalData.userInfo = res.result.data[0]
					uni.setStorageSync('userInfo', this.globalData.userInfo)
					uni.hideLoading()
					// 登录后跳转到个人页面
					uni.switchTab({
						url: '/pages/profile/profile'
					})
				})
			},
			// 向数据库添加用户信息
			addUsersInfo() {
				wx.cloud.callFunction({
					name: 'add_users_info',
					data: {
						nickName: this.globalData.userInfo.nickName,
						avatarUrl: this.globalData.userInfo.avatarUrl,
					}
				}).then(res => {
					this.getOpenId()
					console.log(res);
				})
			},
			// 用户登录
			getUserInfo() {
				uni.showLoading({
					title: '登录中...',
					mask: true
				})
				// 判断有没有登录过
				wx.cloud.callFunction({
					name: 'has_openId_record',
				}).then(res => {
					if (!res.result.total) {
						// 如果数据库没有登录记录
						this.addUsersInfo()
					} else {
						// 如果有登录记录
						this.getUsersDetailInfo()
					}

				})
			},
			// 判断用户是否有登录记录
			hasUserInfo() {
				// 从缓存中获取用户信息
				const userInfo = uni.getStorageSync('userInfo')
				// 判断是否有用户信息
				if ((this.globalData.userInfo && this.globalData.userInfo.openId) || (userInfo && userInfo.openId)) {
					this.globalData.userInfo = userInfo
					return true
				} else {
					return false
				}
			}
		},
		onShow: function() {
			// console.log('App Show')
		},

		onHide: function() {
			// console.log('App Hide')
		}
	}
</script>

<style lang="scss">
	/*每个页面公共css */
	@import '@/uni_modules/uni-scss/index.scss';
</style>
